package com.hengpeng.itfints.service.assign;

import java.util.List;
import com.hengpeng.common.exception.ServiceResult;
import com.hengpeng.itfinbase.persist.CreditAssign;

/**
 * <pre>
 * 债权转让服务类
 * </pre>
 * @author weiyuan
 * @version 1.0, 2015年7月26日
 */
public interface AssignService
{
	/**
	 * <pre>
	 * 当前用户可转让债权列表
	 * </pre>
	 * @param investUserId
	 * @return
	 */
	public List<CreditAssign> queryCanCreditAssignList(Long investUserId);

	/**
	 * <pre>
	 * 转让中的债权
	 * </pre>
	 * @param investUserId
	 * @return
	 */
	public List<CreditAssign> queryAssigningList(Long investUserId);

	/**
	 * <pre>
	 * 已转让的债权
	 * </pre>
	 * @param investUserId
	 * @return
	 */
	public List<CreditAssign> queryAssignedList(Long investUserId);

	/**
	 * <pre>
	 * 已购买的债权
	 * </pre>
	 * @param investUserId
	 * @return
	 */
	public List<CreditAssign> queryBuyedList(Long buyUserId);

	/**
	 * <pre>
	 * 获取当前投标的当前债权信息
	 * </pre>
	 * @param investInfoId
	 * @return
	 */
	public CreditAssign getCurrentAssignInfo(Long assignId);

	/**
	 * <pre>
	 * 获取债权产品
	 * </pre>
	 * @param status
	 * @param borrowUserId
	 * @return
	 */
	public ServiceResult<List<CreditAssign>> queryList(CreditAssign.AssignStatus[] status, Integer curPage,
			Integer pageSize);

	@SuppressWarnings("rawtypes")
	public List queryDeal();
}
